/*******************************************
  滚动显示信息
  author 周翔
  2012-8-20


  当有信息在显示时间内时，若有新的信息到达，是抛弃还是用一个队列存放？
  *********************************************/
#ifndef SCROLLINGMESSAGEDISPLAYWIDGET_H
#define SCROLLINGMESSAGEDISPLAYWIDGET_H

#include <QtGui/QWidget>
#include <QLabel>

#include <QTimer>

class ScrollingMessageDisplayWidget : public QWidget
{
    Q_OBJECT
    
public:
    ScrollingMessageDisplayWidget(QWidget *parent = 0,int speed = 50);
    ~ScrollingMessageDisplayWidget();
public slots:
    /**
     * @brief setMessage  对外接口，接受要显示的字符串
     * @param message
     */
    void setMessage(const QString &message);//对外接口，接受显示的信息
protected:
    void resizeEvent(QResizeEvent *e);
protected slots:
    void updataPosition();
private:
    void initUI();
    void showEnd();

    QLabel *showLabel;
    QString showMessage;
    int count;

    int showMessageSecond;//显示信息时长

    int showSpeed;//每秒多少像素

    int displayHeigth;//信息框的高度
    int displayWidth;//信息框的长度

    int MessageLength;//信息字符长度在窗口上占多少个像素
    /**
     * @brief m_queue 缓冲队列
     */
    QList<QString> m_queue;

    QTimer timer;

    void doShow();




};

#endif // SCROLLINGMESSAGEDISPLAYWIDGET_H
